package com.yc.jpyy.mobile.dao;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;
import org.springframework.dao.DataAccessException;

import com.yc.jpyy.base.dao.BaseDao;

public interface AdminDao extends BaseDao{

	//管理员登录
	List<Map<String, Object>> adminLogin(Map<String, Object> paramsMap) throws DataAccessException;
	
	//获取教练出勤情况
	Map<String, Object> getTeacherInfo(String driverId) throws DataAccessException;
	
	//获取车辆出使用情况
	Map<String, Object> getVehicleInfo(String driverId) throws DataAccessException;
	
	//获取预约记录
	Map<String, Object> getAppointInfo(String driverId) throws DataAccessException;
	
	//获取新增报名人数
	Map<String, Object> getPreInfo(String driverId) throws DataAccessException;
	
	//获取教练出勤情况
	List<Map<String, Object>> getTeacherAttendance(@Param("driverId")String driverId,@Param("imgUrl")String imgUrl) throws DataAccessException;
	
	//获取新增报名信息
	List<Map<String, Object>> getPreUserInfo(@Param("driverId")String driverId,@Param("imgUrl")String imgUrl) throws DataAccessException;
			
	//获取历史课程记录
	List<Map<String, Object>> getCourseRecord(Map<String, Object> paramsMap) throws DataAccessException;
	
	//获取可约学员记录
	List<Map<String, Object>> getAppointmentStudents(Map<String, String> paramsMap) throws DataAccessException;

	//获取课程的学员信息
	List<Map<String, Object>> getStudentByCourseId(@Param("courseId")String courseId,
			@Param("courseType")String courseType,@Param("imgUrl")String imgUrl) throws DataAccessException;

	// 获取怠学学生信息
	List<Map<String, Object>> getSlackLearnStudent(Map<String, Object> paramsMap) throws DataAccessException;
	
	// 发布通知
	int addNews(Map<String, Object> paramsMap) throws DataAccessException;

	// 获取通知
	List<Map<String, Object>> getNews(Map<String, Object> paramsMap) throws DataAccessException;
	
	// 获取驾校所有车辆
	List<Map<String, Object>> getVehicleList(Map<String, Object> paramsMap) throws DataAccessException;
	
	// 获取车辆的签到签退信息
	List<Map<String, Object>> getVehicleSignInfo(@Param("driverId")String driverId,@Param("vehicleId")String vehicleId) throws DataAccessException;
	
	// 获取教练通讯录
	List<Map<String, Object>> getTeacherCallList(Map<String, Object> paramsMap) throws DataAccessException;

	// 获取黑名单
	List<Map<String, Object>> getBlackStudentList(Map<String, Object> paramsMap) throws DataAccessException;
	
	// 取消黑名单
	int deleteBlackStudent(String blackId) throws DataAccessException;
	
	// 获取原密码
	String getOldPassword(Map<String, Object> paramsMap) throws DataAccessException;
	
	// 更改密码
	int updatePassword(Map<String, Object> paramsMap) throws DataAccessException;
	
	// 学员培训周期分部
	Map<String, Object> getStudentTrainCycle(String driverId) throws DataAccessException;
	
	// 长期怠学统计分布
	Map<String, Object> getLongslackStudente(String driverId) throws DataAccessException;

	// 在校学员培训阶段统计
	Map<String, Object> getStudentTrainStage(String driverId) throws DataAccessException;
	
	// 学员量变化曲线：（报名）
	List<Map<String, Object>> getStudentRegisterChange(String driverId) throws DataAccessException;
	
	// 学员量变化曲线：（结业）
	List<Map<String, Object>> getStudentGraduateChange(String driverId) throws DataAccessException;
	
	// 学员有效率折线图
	List<Map<String, Object>> getStudentValidRate(String driverId) throws DataAccessException;
	
	// 教练车7日均培训时长
	List<Map<String, Object>> getTeacherSevenTrainAver(String driverId) throws DataAccessException;
	
	// 教练7日学时有效率统计
	List<Map<String, Object>> getTeacherSevenValidRate(String driverId) throws DataAccessException;
	
	//请假审批列表
	List<Map<String, Object>> getTeacherLeaveInfo(Map<String, Object> paramsMap) throws DataAccessException;
	
	//审批页面详情
	List<Map<String, Object>> getTeacherLeaveDetail(Map<String, Object> paramsMap) throws DataAccessException;
	
	//获取预约了某个课程的学员
	List<Map<String,Object>> getStudentList(Map<String, Object> paramsMap) throws DataAccessException;
	
	// 更改预约状态为已取消
	int deleteCourseAppointment(Map<String, Object> paramsMap) throws DataAccessException;
	
	// 更改课程预约人数和状态
	int delReleaseCourseCount(Map<String, Object> paramsMap) throws DataAccessException;
	
	// 更新tb_SurplusStudyTime
	int delupdateSurplusStudyTimes(Map<String, Object> paramsMap) throws DataAccessException;
	
	// 审批请假
	int updateLeaveStatus(Map<String, Object> paramsMap) throws DataAccessException;
	
	// 更改课程状态为已取消
	int updateCourseStatus(Map<String, Object> paramsMap) throws DataAccessException;
		
}
